﻿#define _CRT_SECURE_NO_WARNINGS

//九九乘法表是学习乘法时必须要掌握的。在不同进制数下，需要不同的乘法表。
//
//例如, 四进制下的乘法表如下所示：
//
//1 * 1 = 1
//2 * 1 = 2 2 * 2 = 10
//3 * 1 = 3 3 * 2 = 12 3 * 3 = 21
//请注意，乘法表中两个数相乘的顺序必须为样例中所示的顺序，不能随意交换两个乘数。
//
//给定
//�
//P，请输出
//�
//P 进制下的乘法表。
//
//输入格式
//输入一个整数
//�
//P。
//
//输出格式
//输出
//�
//P 进制下的乘法表。
//�
//P 进制中大于等于
//10
//10 的数字用大写字母 A、B、C、
//⋯
//⋯ 表示。
//
//输入输出样例
//输入 #1复制
//4
//输出 #1复制
//1 * 1 = 1
//2 * 1 = 2 2 * 2 = 10
//3 * 1 = 3 3 * 2 = 12 3 * 3 = 21
//输入 #2复制
//8
//输出 #2复制
//1 * 1 = 1
//2 * 1 = 2 2 * 2 = 4
//3 * 1 = 3 3 * 2 = 6 3 * 3 = 11
//4 * 1 = 4 4 * 2 = 10 4 * 3 = 14 4 * 4 = 20
//5 * 1 = 5 5 * 2 = 12 5 * 3 = 17 5 * 4 = 24 5 * 5 = 31
//6 * 1 = 6 6 * 2 = 14 6 * 3 = 22 6 * 4 = 30 6 * 5 = 36 6 * 6 = 44
//7 * 1 = 7 7 * 2 = 16 7 * 3 = 25 7 * 4 = 34 7 * 5 = 43 7 * 6 = 52 7 * 7 = 61

//思路：先计算值找到最终的val通过模操作完成对应的x进制的转换（注意大于等于10的变化，借助string来完成）
#include<bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin >> n;
    int x = n;
    for (int i = 1; i < x; i++) {
        for (int j = 1; j <= i; j++) {
            int val = i * j;
            int tmp = val;
            //把大于等于10的换成字符：
            char m = i >= 10 ? i - 10 + 'A' : i + '0';
            char n = j >= 10 ? j - 10 + 'A' : j + '0';

            string s;
            //确定的val无需进位操作，判断是否过10；转换后输出：
            if (tmp < x) {
                string dir;
                if (val >= 10)  dir += val - 10 + 'A';
                else  dir = to_string(val);
                cout << m << '*' << n << '=' << dir << " ";
                continue;
            }
            //这里是需要进位（依次取出取模后的值利用string转换操作获得目标值）：
            while (tmp >= x) {
                string mod;
                if ((tmp % x) >= 10)  mod += (char)((tmp % x) - 10 + 'A');
                else mod += tmp % x + '0';
                s += mod;
                tmp /= x;
            }
            //最后一次小于x的值判断是否大于10->变成大写字母字符；否则直接变数字字符：
            string t;
            if (tmp >= 10) t += (char)(tmp - 10 + 'A');
            else t = tmp + '0';
            s += t;
            reverse(s.begin(), s.end());
            cout << m << '*' << n << '=' << s << " ";
        }
        cout << endl;
    }

}